diff --git a/lib/matplotlib/colorbar.py b/lib/matplotlib/colorbar.py
index d3d53e3d98..a02ca28d89 100644
--- a/lib/matplotlib/colorbar.py
+++ b/lib/matplotlib/colorbar.py
@@ -1100,15 +1100,15 @@ class Colorbar:
         if self._extend_upper():
             b = np.hstack((b, b[-1] + 1))
 
-        # transform from 0-1 to vmin-vmax:
-        if not self.norm.scaled():
-            self.norm.vmin = 0
-            self.norm.vmax = 1
+        # Ensure vmin and vmax are valid for LogNorm
+        if self.norm.vmin is None or self.norm.vmin <= 0:
+            self.norm.vmin = 1e-10  # small positive number to avoid log(0)
+        if self.norm.vmax is None or self.norm.vmax <= self.norm.vmin:
+            self.norm.vmax = self.norm.vmin + 1  # ensure vmax is greater than vmin
+
+        # Now call nonsingular with the updated vmin and vmax
         self.norm.vmin, self.norm.vmax = mtransforms.nonsingular(
             self.norm.vmin, self.norm.vmax, expander=0.1)
-        if (not isinstance(self.norm, colors.BoundaryNorm) and
-                (self.boundaries is None)):
-            b = self.norm.inverse(b)
 
         self._boundaries = np.asarray(b, dtype=float)
         self._values = 0.5 * (self._boundaries[:-1] + self._boundaries[1:])
